make use of g_signal_handlers_block_matched,
authorTim Janik <timj@gtk.org>
Wed, 1 Nov 2000 03:03:52 +0000 (03:03 +0000)
committerTim Janik <timj@src.gnome.org>
Wed, 1 Nov 2000 03:03:52 +0000 (03:03 +0000)
Wed Nov  1 03:43:42 2000  Tim Janik  <timj@gtk.org>

        * gtk/gtksignal.c (gtk_signal_compat_matched): make use of
        g_signal_handlers_block_matched, g_signal_handlers_unblock_matched and
        g_signal_handlers_disconnect_matched to block/unblock and disconnect
        multiple handlers respectively, instead of only treating the
        first handler found (bug reported by owen).

ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtksignal.c

index 784fdd980c415fdc5e32c83d392a8274d1bfbeb9..88b586bf5a748e091c2ee005231e294aab0f0b5d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Wed Nov  1 03:43:42 2000  Tim Janik  <timj@gtk.org>
+
+       * gtk/gtksignal.c (gtk_signal_compat_matched): make use of
+       g_signal_handlers_block_matched, g_signal_handlers_unblock_matched and
+       g_signal_handlers_disconnect_matched to block/unblock and disconnect
+       multiple handlers respectively, instead of only treating the
+       first handler found (bug reported by owen).
+
 Mon Oct 30 19:23:50 2000  Jonathan Blandford  <jrb@redhat.com>
 
        * gtk/gtktreeview.c (gtk_tree_view_expand_row): New function.
index 784fdd980c415fdc5e32c83d392a8274d1bfbeb9..88b586bf5a748e091c2ee005231e294aab0f0b5d 100644 (file)
@@ -1,3 +1,11 @@
+Wed Nov  1 03:43:42 2000  Tim Janik  <timj@gtk.org>
+
+       * gtk/gtksignal.c (gtk_signal_compat_matched): make use of
+       g_signal_handlers_block_matched, g_signal_handlers_unblock_matched and
+       g_signal_handlers_disconnect_matched to block/unblock and disconnect
+       multiple handlers respectively, instead of only treating the
+       first handler found (bug reported by owen).
+
 Mon Oct 30 19:23:50 2000  Jonathan Blandford  <jrb@redhat.com>
 
        * gtk/gtktreeview.c (gtk_tree_view_expand_row): New function.
index 784fdd980c415fdc5e32c83d392a8274d1bfbeb9..88b586bf5a748e091c2ee005231e294aab0f0b5d 100644 (file)
@@ -1,3 +1,11 @@
+Wed Nov  1 03:43:42 2000  Tim Janik  <timj@gtk.org>
+
+       * gtk/gtksignal.c (gtk_signal_compat_matched): make use of
+       g_signal_handlers_block_matched, g_signal_handlers_unblock_matched and
+       g_signal_handlers_disconnect_matched to block/unblock and disconnect
+       multiple handlers respectively, instead of only treating the
+       first handler found (bug reported by owen).
+
 Mon Oct 30 19:23:50 2000  Jonathan Blandford  <jrb@redhat.com>
 
        * gtk/gtktreeview.c (gtk_tree_view_expand_row): New function.
index 784fdd980c415fdc5e32c83d392a8274d1bfbeb9..88b586bf5a748e091c2ee005231e294aab0f0b5d 100644 (file)
@@ -1,3 +1,11 @@
+Wed Nov  1 03:43:42 2000  Tim Janik  <timj@gtk.org>
+
+       * gtk/gtksignal.c (gtk_signal_compat_matched): make use of
+       g_signal_handlers_block_matched, g_signal_handlers_unblock_matched and
+       g_signal_handlers_disconnect_matched to block/unblock and disconnect
+       multiple handlers respectively, instead of only treating the
+       first handler found (bug reported by owen).
+
 Mon Oct 30 19:23:50 2000  Jonathan Blandford  <jrb@redhat.com>
 
        * gtk/gtktreeview.c (gtk_tree_view_expand_row): New function.
index 784fdd980c415fdc5e32c83d392a8274d1bfbeb9..88b586bf5a748e091c2ee005231e294aab0f0b5d 100644 (file)
@@ -1,3 +1,11 @@
+Wed Nov  1 03:43:42 2000  Tim Janik  <timj@gtk.org>
+
+       * gtk/gtksignal.c (gtk_signal_compat_matched): make use of
+       g_signal_handlers_block_matched, g_signal_handlers_unblock_matched and
+       g_signal_handlers_disconnect_matched to block/unblock and disconnect
+       multiple handlers respectively, instead of only treating the
+       first handler found (bug reported by owen).
+
 Mon Oct 30 19:23:50 2000  Jonathan Blandford  <jrb@redhat.com>
 
        * gtk/gtktreeview.c (gtk_tree_view_expand_row): New function.
index 784fdd980c415fdc5e32c83d392a8274d1bfbeb9..88b586bf5a748e091c2ee005231e294aab0f0b5d 100644 (file)
@@ -1,3 +1,11 @@
+Wed Nov  1 03:43:42 2000  Tim Janik  <timj@gtk.org>
+
+       * gtk/gtksignal.c (gtk_signal_compat_matched): make use of
+       g_signal_handlers_block_matched, g_signal_handlers_unblock_matched and
+       g_signal_handlers_disconnect_matched to block/unblock and disconnect
+       multiple handlers respectively, instead of only treating the
+       first handler found (bug reported by owen).
+
 Mon Oct 30 19:23:50 2000  Jonathan Blandford  <jrb@redhat.com>
 
        * gtk/gtktreeview.c (gtk_tree_view_expand_row): New function.
index 784fdd980c415fdc5e32c83d392a8274d1bfbeb9..88b586bf5a748e091c2ee005231e294aab0f0b5d 100644 (file)
@@ -1,3 +1,11 @@
+Wed Nov  1 03:43:42 2000  Tim Janik  <timj@gtk.org>
+
+       * gtk/gtksignal.c (gtk_signal_compat_matched): make use of
+       g_signal_handlers_block_matched, g_signal_handlers_unblock_matched and
+       g_signal_handlers_disconnect_matched to block/unblock and disconnect
+       multiple handlers respectively, instead of only treating the
+       first handler found (bug reported by owen).
+
 Mon Oct 30 19:23:50 2000  Jonathan Blandford  <jrb@redhat.com>
 
        * gtk/gtktreeview.c (gtk_tree_view_expand_row): New function.
index b911ae6a969c7940d8b6f11092ea2cb15e8ed168..883d04792bef2f1c094643f0c2846f6905251c01 100644 (file)
@@ -160,22 +160,21 @@ gtk_signal_compat_matched (GtkObject       *object,
                           GSignalMatchType match,
                           guint            action)
 {
-  guint id;
+  guint n_handlers;
   
   g_return_if_fail (GTK_IS_OBJECT (object));
+
+  switch (action)
+    {
+    case 0:  n_handlers = g_signal_handlers_disconnect_matched (object, match, 0, 0, NULL, func, data);         break;
+    case 1:  n_handlers = g_signal_handlers_block_matched (object, match, 0, 0, NULL, func, data);      break;
+    case 2:  n_handlers = g_signal_handlers_unblock_matched (object, match, 0, 0, NULL, func, data);    break;
+    default: n_handlers = 0;                                                                            break;
+    }
   
-  id = g_signal_handler_find (object, match, 0, 0, NULL, func, data);
-  
-  if (!id)
+  if (!n_handlers)
     g_warning ("unable to find signal handler for object(%p) with func(%p) and data(%p)",
               object, func, data);
-  else
-    switch (action)
-      {
-      case 0: g_signal_handler_disconnect (object, id); break;
-      case 1: g_signal_handler_block (object, id);     break;
-      case 2: g_signal_handler_unblock (object, id);   break;
-      }
 }
 
 static inline gboolean